﻿using System;

namespace SDFL.KeyPoints.DesignPattern.Strategy.Structural
{

    /// <summary>
    /// MainApp startup class for Structural
    /// Strategy Design Pattern.
    /// </summary>
    class MainApp
    {
        /// <summary>
        /// Entry point into console application.
        /// Client
        /// </summary>
        static void Main()
        {
            Context context;

            // Three contexts following different strategies
            // client user determine which algorithm will be used
            context = new Context(new ConcreteStrategyA());
            context.ContextInterface();

            context = new Context(new ConcreteStrategyB());
            context.ContextInterface();

            context = new Context(new ConcreteStrategyC());
            context.ContextInterface();

            // Wait for user
            Console.ReadKey();
        }
    }   
}
